package com.integral.service;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.integral.dao.IOrderDao;
import com.integral.entity.Order;
import com.integral.entity.Product;
import com.integral.vo.OrderVo;

/**
 * @Description: 订单表Service类
 * @author zhaofan
 * @date 2018年05月08日 上午01:48:50
 */
@Service("orderService")
public class OrderService {
	
	/**
	 * 注入订单表Dao
	 */
	@Resource
	private IOrderDao orderDao;
	
	/**
	 * @Description: 新增订单表
	 * @param order 订单表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:48:50
	 */
	public int addOrder(Order order) {
		order.setCreateEmp("SYS");
		order.setCreateTime(new Date());
		order.setDeleteFlag(0);
		return orderDao.addOrder(order);
	}
	
	/**
	 * @Description: 修改订单表
	 * @param order 订单表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:48:50
	 */
	public int updateById(Order order) {
		return orderDao.updateById(order);
	}
	
	/**
	 * @Description: 删除订单表
	 * @param id 主键
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:48:50
	 */
	public int deleteById(Long id) {
		return orderDao.deleteById(id);
	}
	
	/**
	 * @Description: 根据ID查询订单表
	 * @param id 主键
	 * @return 订单表
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:48:50
	 */
	public Order findById(Long id) {
		return orderDao.findById(id);
	}
	
	/**
	 * 查询订单总记录数
	 * @param orderVo
	 * @return
	 */
	public Long findOrderCount(OrderVo orderVo){
		return orderDao.findOrderCount(orderVo);
	}
	
	/**
	 * 查询订单列表
	 * @param orderVo
	 * @return
	 */
	public List<OrderVo> findOrder(OrderVo orderVo){
		return orderDao.findOrder(orderVo);
	}
	
	/**
	 * 根据订单编号修改订单状态
	 * @param order
	 * @return
	 */
	public int updateByStatus(Order order){
		order.setUpdateEmp("SYS");
		order.setUpdateTime(new Date());
		return orderDao.updateByStatus(order);
	}
	
	/**
	 * 根据ID查询 支付产品信息
	 * @param product
	 * @return
	 */
	public Product findProductById(int productId){
		return orderDao.findProductById(productId);
	}
}